package com.fxust.dialog;

import java.awt.Component;
import java.awt.Frame;
import java.io.File;

import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.JProgressBar;
import javax.swing.JTextField;
import javax.swing.filechooser.FileFilter;

import org.apache.commons.lang3.StringUtils;

/**
 * 对话框基类
 * @auto johnking
 * @create 2017-12-17 下午9:17
 **/
public class BaseDialog extends JDialog{

    /**
     * 序列化ID
     */
    private static final long serialVersionUID = -8583295529284550862L;

    /** 处理数量TextField */
    protected JTextField            dealNumTextField        = null;
    /** 处理的进度ProgressBar */
    protected JProgressBar            dealProgressBar        = null;

    protected int dealNum = 0;

    public BaseDialog(Frame frame,String title) {
        super(frame, title);
    }

    public void setDealNumFieldValue(String value){
        dealNumTextField.setText(value);
    }
    public void setDealProgressBarValue(int value){
        dealProgressBar.setValue(value);
    }

    /**
     * 打开文件路径选择器
     * @author fgq 2017年8月8日 下午3:26:07
     * @param model
     * @param filter
     * @param parent
     * @return
     */
    protected String openFileChooser(int model, FileFilter filter, Component parent) {
        JFileChooser fc = new JFileChooser();
        // 只能选择文件夹
        fc.setFileSelectionMode(model);
        if (filter != null) {
            fc.setFileFilter(filter);
        }
        String fileName = "";
        int returnVal = fc.showSaveDialog(parent);
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            fileName = fc.getSelectedFile().getAbsolutePath();
        }
        fileName = fileName.replace("\\", "/");
        return fileName;
    }
    /**
     * 校验界面输入
     * @author fgq 2017年11月24日 下午6:56:20
     * @param filePath
     * @return
     */
    protected boolean varifyFilePath(String filePath) {
        if (StringUtils.isBlank(filePath)) {
            JOptionPane.showMessageDialog(null, "文件路径不能为空，请重新选择路径", "错误信息", JOptionPane.ERROR_MESSAGE);
            return false;
        }
        File folder = new File(filePath);
        if (folder.listFiles() == null) {
            JOptionPane.showMessageDialog(null, "该用户无读此目录权限,请重新选择", "错误信息", JOptionPane.ERROR_MESSAGE);
            return false;
        } else
        if (folder.isFile()) {
            JOptionPane.showMessageDialog(null, "不能选择文件，请重新选择路径", "错误信息", JOptionPane.ERROR_MESSAGE);
            return false;
        }
        return true;
    }


}
